package tool.prototypes.testSrc;


	/**
	 * @author jwb09119
	 * @date 2013/11/19
	 * 
	 * This class is intended to be an interesting test target for Variable Declaration Visitor.
	 */

public class Test implements TestInterface {

	private static final int STATIC_VARIABLE= 42;
	
	private int primitiveVariable;
	private TestInterface interfaceVariable;
	private Test objectVariable;
	
	
	public Test () {
		
		primitiveVariable = 100;
		interfaceVariable = this;
		objectVariable = this;
				
	}


	private void methodWithLocalVariables() {
		
		String stringVariableLocalToMethod;
		stringVariableLocalToMethod = "";
		
	}
	
	
	@Override
	public void voidMethod() {
		
		primitiveVariable = STATIC_VARIABLE;
		
	}


	@Override
	public int primitiveRtnMethod() {

		return primitiveVariable;

	}


	@Override
	public TestInterface interfaceRtnMethod() {

		return this;

	}


	@Override
	public Test classRtnMethod() {

		return this;
		
	}


	@Override
	public void primitiveParamMethod(int intParameter) {

		primitiveVariable = intParameter;
		
	}


	@Override
	public void interfaceParamMethod(TestInterface interfaceParameter) {
		
		interfaceVariable = interfaceParameter;
		
	}


	@Override
	public void objectParamMethod(Test objectParameter) {
		
		objectVariable = objectParameter;
		
	}
	
	
	class InnerClass {
		
		private int innerClassVariable;
		
		public InnerClass () {
			
		}
		
		private void innerClassMethod (int innerClassMethodParameter) {
			
			innerClassVariable = innerClassMethodParameter;
			
		}
		
	}
	
	
	
}
